package bpmn.diagram.part;

import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.gmf.runtime.notation.View;

import bpmn.Association;
import bpmn.BpmnPackage;
import bpmn.Complex;
import bpmn.DataBased;
import bpmn.DataObject;
import bpmn.End;
import bpmn.GraphicalElement;
import bpmn.Inclusive;
import bpmn.Intermediate;
import bpmn.Lane;
import bpmn.Parallel;
import bpmn.Pool;
import bpmn.Process;
import bpmn.SequenceFlow;
import bpmn.Start;
import bpmn.Task;
import bpmn.diagram.edit.parts.AssociationEditPart;
import bpmn.diagram.edit.parts.ComplexEditPart;
import bpmn.diagram.edit.parts.DataBasedEditPart;
import bpmn.diagram.edit.parts.DataObjectEditPart;
import bpmn.diagram.edit.parts.EndEditPart;
import bpmn.diagram.edit.parts.InclusiveEditPart;
import bpmn.diagram.edit.parts.IntermediateEditPart;
import bpmn.diagram.edit.parts.Lane2EditPart;
import bpmn.diagram.edit.parts.LaneCompartmentLaneEditPart;
import bpmn.diagram.edit.parts.LaneEditPart;
import bpmn.diagram.edit.parts.ParallelEditPart;
import bpmn.diagram.edit.parts.PoolCompartmentPoolEditPart;
import bpmn.diagram.edit.parts.PoolEditPart;
import bpmn.diagram.edit.parts.Process2EditPart;
import bpmn.diagram.edit.parts.ProcessCompartmentProcessEditPart;
import bpmn.diagram.edit.parts.ProcessEditPart;
import bpmn.diagram.edit.parts.SequenceFlowEditPart;
import bpmn.diagram.edit.parts.StartEditPart;
import bpmn.diagram.edit.parts.Task2EditPart;
import bpmn.diagram.edit.parts.Task3EditPart;
import bpmn.diagram.edit.parts.Task4EditPart;
import bpmn.diagram.edit.parts.Task5EditPart;
import bpmn.diagram.edit.parts.Task6EditPart;
import bpmn.diagram.edit.parts.Task7EditPart;
import bpmn.diagram.edit.parts.Task8EditPart;
import bpmn.diagram.edit.parts.Task9EditPart;
import bpmn.diagram.edit.parts.TaskEditPart;
import bpmn.diagram.providers.Bpmn_1_1ElementTypes;

/**
 * @generated
 */
public class Bpmn_1_1DiagramUpdater {

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1NodeDescriptor> getSemanticChildren(View view) {
		switch (Bpmn_1_1VisualIDRegistry.getVisualID(view)) {
		case ProcessEditPart.VISUAL_ID:
			return getProcess_1000SemanticChildren(view);
		case PoolCompartmentPoolEditPart.VISUAL_ID:
			return getPoolCompartmentPool_7001SemanticChildren(view);
		case ProcessCompartmentProcessEditPart.VISUAL_ID:
			return getProcessCompartmentProcess_7002SemanticChildren(view);
		case LaneCompartmentLaneEditPart.VISUAL_ID:
			return getLaneCompartmentLane_7003SemanticChildren(view);
		}
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1NodeDescriptor> getProcess_1000SemanticChildren(
			View view) {
		if (!view.isSetElement()) {
			return Collections.emptyList();
		}
		Process modelElement = (Process) view.getElement();
		LinkedList<Bpmn_1_1NodeDescriptor> result = new LinkedList<Bpmn_1_1NodeDescriptor>();
		for (Iterator<?> it = modelElement.getGraphicalElements().iterator(); it
				.hasNext();) {
			GraphicalElement childElement = (GraphicalElement) it.next();
			int visualID = Bpmn_1_1VisualIDRegistry.getNodeVisualID(view,
					childElement);
			if (visualID == PoolEditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
		}
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1NodeDescriptor> getPoolCompartmentPool_7001SemanticChildren(
			View view) {
		if (false == view.eContainer() instanceof View) {
			return Collections.emptyList();
		}
		View containerView = (View) view.eContainer();
		if (!containerView.isSetElement()) {
			return Collections.emptyList();
		}
		Pool modelElement = (Pool) containerView.getElement();
		LinkedList<Bpmn_1_1NodeDescriptor> result = new LinkedList<Bpmn_1_1NodeDescriptor>();
		{
			Process childElement = modelElement.getProcessRef();
			int visualID = Bpmn_1_1VisualIDRegistry.getNodeVisualID(view,
					childElement);
			if (visualID == Process2EditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
			}
		}
		for (Iterator<?> it = modelElement.getLanes().iterator(); it.hasNext();) {
			Lane childElement = (Lane) it.next();
			int visualID = Bpmn_1_1VisualIDRegistry.getNodeVisualID(view,
					childElement);
			if (visualID == LaneEditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
		}
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1NodeDescriptor> getProcessCompartmentProcess_7002SemanticChildren(
			View view) {
		if (false == view.eContainer() instanceof View) {
			return Collections.emptyList();
		}
		View containerView = (View) view.eContainer();
		if (!containerView.isSetElement()) {
			return Collections.emptyList();
		}
		Process modelElement = (Process) containerView.getElement();
		LinkedList<Bpmn_1_1NodeDescriptor> result = new LinkedList<Bpmn_1_1NodeDescriptor>();
		for (Iterator<?> it = modelElement.getGraphicalElements().iterator(); it
				.hasNext();) {
			GraphicalElement childElement = (GraphicalElement) it.next();
			int visualID = Bpmn_1_1VisualIDRegistry.getNodeVisualID(view,
					childElement);
			if (visualID == TaskEditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == Task2EditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == Task3EditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == Task4EditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == Task5EditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == Task6EditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == Task7EditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == Task8EditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == Task9EditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == StartEditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == IntermediateEditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == EndEditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == DataObjectEditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == InclusiveEditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == ComplexEditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == ParallelEditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
			if (visualID == DataBasedEditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
		}
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1NodeDescriptor> getLaneCompartmentLane_7003SemanticChildren(
			View view) {
		if (false == view.eContainer() instanceof View) {
			return Collections.emptyList();
		}
		View containerView = (View) view.eContainer();
		if (!containerView.isSetElement()) {
			return Collections.emptyList();
		}
		Lane modelElement = (Lane) containerView.getElement();
		LinkedList<Bpmn_1_1NodeDescriptor> result = new LinkedList<Bpmn_1_1NodeDescriptor>();
		for (Iterator<?> it = modelElement.getLanes().iterator(); it.hasNext();) {
			Lane childElement = (Lane) it.next();
			int visualID = Bpmn_1_1VisualIDRegistry.getNodeVisualID(view,
					childElement);
			if (visualID == Lane2EditPart.VISUAL_ID) {
				result.add(new Bpmn_1_1NodeDescriptor(childElement, visualID));
				continue;
			}
		}
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getContainedLinks(View view) {
		switch (Bpmn_1_1VisualIDRegistry.getVisualID(view)) {
		case ProcessEditPart.VISUAL_ID:
			return getProcess_1000ContainedLinks(view);
		case PoolEditPart.VISUAL_ID:
			return getPool_2003ContainedLinks(view);
		case Process2EditPart.VISUAL_ID:
			return getProcess_3001ContainedLinks(view);
		case TaskEditPart.VISUAL_ID:
			return getTask_3002ContainedLinks(view);
		case Task2EditPart.VISUAL_ID:
			return getTask_3009ContainedLinks(view);
		case Task3EditPart.VISUAL_ID:
			return getTask_3014ContainedLinks(view);
		case Task4EditPart.VISUAL_ID:
			return getTask_3015ContainedLinks(view);
		case Task5EditPart.VISUAL_ID:
			return getTask_3016ContainedLinks(view);
		case Task6EditPart.VISUAL_ID:
			return getTask_3017ContainedLinks(view);
		case Task7EditPart.VISUAL_ID:
			return getTask_3018ContainedLinks(view);
		case Task8EditPart.VISUAL_ID:
			return getTask_3019ContainedLinks(view);
		case Task9EditPart.VISUAL_ID:
			return getTask_3020ContainedLinks(view);
		case StartEditPart.VISUAL_ID:
			return getStart_3003ContainedLinks(view);
		case IntermediateEditPart.VISUAL_ID:
			return getIntermediate_3004ContainedLinks(view);
		case EndEditPart.VISUAL_ID:
			return getEnd_3005ContainedLinks(view);
		case DataObjectEditPart.VISUAL_ID:
			return getDataObject_3006ContainedLinks(view);
		case InclusiveEditPart.VISUAL_ID:
			return getInclusive_3010ContainedLinks(view);
		case ComplexEditPart.VISUAL_ID:
			return getComplex_3011ContainedLinks(view);
		case ParallelEditPart.VISUAL_ID:
			return getParallel_3012ContainedLinks(view);
		case DataBasedEditPart.VISUAL_ID:
			return getDataBased_3013ContainedLinks(view);
		case LaneEditPart.VISUAL_ID:
			return getLane_3007ContainedLinks(view);
		case Lane2EditPart.VISUAL_ID:
			return getLane_3008ContainedLinks(view);
		case SequenceFlowEditPart.VISUAL_ID:
			return getSequenceFlow_4001ContainedLinks(view);
		case AssociationEditPart.VISUAL_ID:
			return getAssociation_4002ContainedLinks(view);
		}
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getIncomingLinks(View view) {
		switch (Bpmn_1_1VisualIDRegistry.getVisualID(view)) {
		case PoolEditPart.VISUAL_ID:
			return getPool_2003IncomingLinks(view);
		case Process2EditPart.VISUAL_ID:
			return getProcess_3001IncomingLinks(view);
		case TaskEditPart.VISUAL_ID:
			return getTask_3002IncomingLinks(view);
		case Task2EditPart.VISUAL_ID:
			return getTask_3009IncomingLinks(view);
		case Task3EditPart.VISUAL_ID:
			return getTask_3014IncomingLinks(view);
		case Task4EditPart.VISUAL_ID:
			return getTask_3015IncomingLinks(view);
		case Task5EditPart.VISUAL_ID:
			return getTask_3016IncomingLinks(view);
		case Task6EditPart.VISUAL_ID:
			return getTask_3017IncomingLinks(view);
		case Task7EditPart.VISUAL_ID:
			return getTask_3018IncomingLinks(view);
		case Task8EditPart.VISUAL_ID:
			return getTask_3019IncomingLinks(view);
		case Task9EditPart.VISUAL_ID:
			return getTask_3020IncomingLinks(view);
		case StartEditPart.VISUAL_ID:
			return getStart_3003IncomingLinks(view);
		case IntermediateEditPart.VISUAL_ID:
			return getIntermediate_3004IncomingLinks(view);
		case EndEditPart.VISUAL_ID:
			return getEnd_3005IncomingLinks(view);
		case DataObjectEditPart.VISUAL_ID:
			return getDataObject_3006IncomingLinks(view);
		case InclusiveEditPart.VISUAL_ID:
			return getInclusive_3010IncomingLinks(view);
		case ComplexEditPart.VISUAL_ID:
			return getComplex_3011IncomingLinks(view);
		case ParallelEditPart.VISUAL_ID:
			return getParallel_3012IncomingLinks(view);
		case DataBasedEditPart.VISUAL_ID:
			return getDataBased_3013IncomingLinks(view);
		case LaneEditPart.VISUAL_ID:
			return getLane_3007IncomingLinks(view);
		case Lane2EditPart.VISUAL_ID:
			return getLane_3008IncomingLinks(view);
		case SequenceFlowEditPart.VISUAL_ID:
			return getSequenceFlow_4001IncomingLinks(view);
		case AssociationEditPart.VISUAL_ID:
			return getAssociation_4002IncomingLinks(view);
		}
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getOutgoingLinks(View view) {
		switch (Bpmn_1_1VisualIDRegistry.getVisualID(view)) {
		case PoolEditPart.VISUAL_ID:
			return getPool_2003OutgoingLinks(view);
		case Process2EditPart.VISUAL_ID:
			return getProcess_3001OutgoingLinks(view);
		case TaskEditPart.VISUAL_ID:
			return getTask_3002OutgoingLinks(view);
		case Task2EditPart.VISUAL_ID:
			return getTask_3009OutgoingLinks(view);
		case Task3EditPart.VISUAL_ID:
			return getTask_3014OutgoingLinks(view);
		case Task4EditPart.VISUAL_ID:
			return getTask_3015OutgoingLinks(view);
		case Task5EditPart.VISUAL_ID:
			return getTask_3016OutgoingLinks(view);
		case Task6EditPart.VISUAL_ID:
			return getTask_3017OutgoingLinks(view);
		case Task7EditPart.VISUAL_ID:
			return getTask_3018OutgoingLinks(view);
		case Task8EditPart.VISUAL_ID:
			return getTask_3019OutgoingLinks(view);
		case Task9EditPart.VISUAL_ID:
			return getTask_3020OutgoingLinks(view);
		case StartEditPart.VISUAL_ID:
			return getStart_3003OutgoingLinks(view);
		case IntermediateEditPart.VISUAL_ID:
			return getIntermediate_3004OutgoingLinks(view);
		case EndEditPart.VISUAL_ID:
			return getEnd_3005OutgoingLinks(view);
		case DataObjectEditPart.VISUAL_ID:
			return getDataObject_3006OutgoingLinks(view);
		case InclusiveEditPart.VISUAL_ID:
			return getInclusive_3010OutgoingLinks(view);
		case ComplexEditPart.VISUAL_ID:
			return getComplex_3011OutgoingLinks(view);
		case ParallelEditPart.VISUAL_ID:
			return getParallel_3012OutgoingLinks(view);
		case DataBasedEditPart.VISUAL_ID:
			return getDataBased_3013OutgoingLinks(view);
		case LaneEditPart.VISUAL_ID:
			return getLane_3007OutgoingLinks(view);
		case Lane2EditPart.VISUAL_ID:
			return getLane_3008OutgoingLinks(view);
		case SequenceFlowEditPart.VISUAL_ID:
			return getSequenceFlow_4001OutgoingLinks(view);
		case AssociationEditPart.VISUAL_ID:
			return getAssociation_4002OutgoingLinks(view);
		}
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getProcess_1000ContainedLinks(
			View view) {
		Process modelElement = (Process) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getContainedTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getContainedTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getPool_2003ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getProcess_3001ContainedLinks(
			View view) {
		Process modelElement = (Process) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getContainedTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getContainedTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3002ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3009ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3014ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3015ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3016ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3017ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3018ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3019ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3020ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getStart_3003ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getIntermediate_3004ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getEnd_3005ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getDataObject_3006ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getInclusive_3010ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getComplex_3011ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getParallel_3012ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getDataBased_3013ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getLane_3007ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getLane_3008ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getSequenceFlow_4001ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getAssociation_4002ContainedLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getPool_2003IncomingLinks(
			View view) {
		Pool modelElement = (Pool) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getProcess_3001IncomingLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3002IncomingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3009IncomingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3014IncomingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3015IncomingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3016IncomingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3017IncomingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3018IncomingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3019IncomingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3020IncomingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getStart_3003IncomingLinks(
			View view) {
		Start modelElement = (Start) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getIntermediate_3004IncomingLinks(
			View view) {
		Intermediate modelElement = (Intermediate) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getEnd_3005IncomingLinks(
			View view) {
		End modelElement = (End) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getDataObject_3006IncomingLinks(
			View view) {
		DataObject modelElement = (DataObject) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getInclusive_3010IncomingLinks(
			View view) {
		Inclusive modelElement = (Inclusive) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getComplex_3011IncomingLinks(
			View view) {
		Complex modelElement = (Complex) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getParallel_3012IncomingLinks(
			View view) {
		Parallel modelElement = (Parallel) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getDataBased_3013IncomingLinks(
			View view) {
		DataBased modelElement = (DataBased) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getLane_3007IncomingLinks(
			View view) {
		Lane modelElement = (Lane) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getLane_3008IncomingLinks(
			View view) {
		Lane modelElement = (Lane) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getSequenceFlow_4001IncomingLinks(
			View view) {
		SequenceFlow modelElement = (SequenceFlow) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getAssociation_4002IncomingLinks(
			View view) {
		Association modelElement = (Association) view.getElement();
		Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
				.find(view.eResource().getResourceSet().getResources());
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getIncomingTypeModelFacetLinks_SequenceFlow_4001(
				modelElement, crossReferences));
		result.addAll(getIncomingTypeModelFacetLinks_Association_4002(
				modelElement, crossReferences));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getPool_2003OutgoingLinks(
			View view) {
		Pool modelElement = (Pool) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getProcess_3001OutgoingLinks(
			View view) {
		return Collections.emptyList();
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3002OutgoingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3009OutgoingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3014OutgoingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3015OutgoingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3016OutgoingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3017OutgoingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3018OutgoingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3019OutgoingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getTask_3020OutgoingLinks(
			View view) {
		Task modelElement = (Task) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getStart_3003OutgoingLinks(
			View view) {
		Start modelElement = (Start) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getIntermediate_3004OutgoingLinks(
			View view) {
		Intermediate modelElement = (Intermediate) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getEnd_3005OutgoingLinks(
			View view) {
		End modelElement = (End) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getDataObject_3006OutgoingLinks(
			View view) {
		DataObject modelElement = (DataObject) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getInclusive_3010OutgoingLinks(
			View view) {
		Inclusive modelElement = (Inclusive) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getComplex_3011OutgoingLinks(
			View view) {
		Complex modelElement = (Complex) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getParallel_3012OutgoingLinks(
			View view) {
		Parallel modelElement = (Parallel) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getDataBased_3013OutgoingLinks(
			View view) {
		DataBased modelElement = (DataBased) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getLane_3007OutgoingLinks(
			View view) {
		Lane modelElement = (Lane) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getLane_3008OutgoingLinks(
			View view) {
		Lane modelElement = (Lane) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getSequenceFlow_4001OutgoingLinks(
			View view) {
		SequenceFlow modelElement = (SequenceFlow) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	public static List<Bpmn_1_1LinkDescriptor> getAssociation_4002OutgoingLinks(
			View view) {
		Association modelElement = (Association) view.getElement();
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		result.addAll(getOutgoingTypeModelFacetLinks_SequenceFlow_4001(modelElement));
		result.addAll(getOutgoingTypeModelFacetLinks_Association_4002(modelElement));
		return result;
	}

	/**
	 * @generated
	 */
	private static Collection<Bpmn_1_1LinkDescriptor> getContainedTypeModelFacetLinks_SequenceFlow_4001(
			Process container) {
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		for (Iterator<?> links = container.getGraphicalElements().iterator(); links
				.hasNext();) {
			EObject linkObject = (EObject) links.next();
			if (false == linkObject instanceof SequenceFlow) {
				continue;
			}
			SequenceFlow link = (SequenceFlow) linkObject;
			if (SequenceFlowEditPart.VISUAL_ID != Bpmn_1_1VisualIDRegistry
					.getLinkWithClassVisualID(link)) {
				continue;
			}
			GraphicalElement dst = link.getTargetRef();
			GraphicalElement src = link.getSourceRef();
			result.add(new Bpmn_1_1LinkDescriptor(src, dst, link,
					Bpmn_1_1ElementTypes.SequenceFlow_4001,
					SequenceFlowEditPart.VISUAL_ID));
		}
		return result;
	}

	/**
	 * @generated
	 */
	private static Collection<Bpmn_1_1LinkDescriptor> getContainedTypeModelFacetLinks_Association_4002(
			Process container) {
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		for (Iterator<?> links = container.getGraphicalElements().iterator(); links
				.hasNext();) {
			EObject linkObject = (EObject) links.next();
			if (false == linkObject instanceof Association) {
				continue;
			}
			Association link = (Association) linkObject;
			if (AssociationEditPart.VISUAL_ID != Bpmn_1_1VisualIDRegistry
					.getLinkWithClassVisualID(link)) {
				continue;
			}
			GraphicalElement dst = link.getTargetRef();
			GraphicalElement src = link.getSourceRef();
			result.add(new Bpmn_1_1LinkDescriptor(src, dst, link,
					Bpmn_1_1ElementTypes.Association_4002,
					AssociationEditPart.VISUAL_ID));
		}
		return result;
	}

	/**
	 * @generated
	 */
	private static Collection<Bpmn_1_1LinkDescriptor> getIncomingTypeModelFacetLinks_SequenceFlow_4001(
			GraphicalElement target,
			Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) {
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		Collection<EStructuralFeature.Setting> settings = crossReferences
				.get(target);
		for (EStructuralFeature.Setting setting : settings) {
			if (setting.getEStructuralFeature() != BpmnPackage.eINSTANCE
					.getConnectingObjects_TargetRef()
					|| false == setting.getEObject() instanceof SequenceFlow) {
				continue;
			}
			SequenceFlow link = (SequenceFlow) setting.getEObject();
			if (SequenceFlowEditPart.VISUAL_ID != Bpmn_1_1VisualIDRegistry
					.getLinkWithClassVisualID(link)) {
				continue;
			}
			GraphicalElement src = link.getSourceRef();
			result.add(new Bpmn_1_1LinkDescriptor(src, target, link,
					Bpmn_1_1ElementTypes.SequenceFlow_4001,
					SequenceFlowEditPart.VISUAL_ID));
		}
		return result;
	}

	/**
	 * @generated
	 */
	private static Collection<Bpmn_1_1LinkDescriptor> getIncomingTypeModelFacetLinks_Association_4002(
			GraphicalElement target,
			Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) {
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		Collection<EStructuralFeature.Setting> settings = crossReferences
				.get(target);
		for (EStructuralFeature.Setting setting : settings) {
			if (setting.getEStructuralFeature() != BpmnPackage.eINSTANCE
					.getConnectingObjects_TargetRef()
					|| false == setting.getEObject() instanceof Association) {
				continue;
			}
			Association link = (Association) setting.getEObject();
			if (AssociationEditPart.VISUAL_ID != Bpmn_1_1VisualIDRegistry
					.getLinkWithClassVisualID(link)) {
				continue;
			}
			GraphicalElement src = link.getSourceRef();
			result.add(new Bpmn_1_1LinkDescriptor(src, target, link,
					Bpmn_1_1ElementTypes.Association_4002,
					AssociationEditPart.VISUAL_ID));
		}
		return result;
	}

	/**
	 * @generated
	 */
	private static Collection<Bpmn_1_1LinkDescriptor> getOutgoingTypeModelFacetLinks_SequenceFlow_4001(
			GraphicalElement source) {
		Process container = null;
		// Find container element for the link.
		// Climb up by containment hierarchy starting from the source
		// and return the first element that is instance of the container class.
		for (EObject element = source; element != null && container == null; element = element
				.eContainer()) {
			if (element instanceof Process) {
				container = (Process) element;
			}
		}
		if (container == null) {
			return Collections.emptyList();
		}
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		for (Iterator<?> links = container.getGraphicalElements().iterator(); links
				.hasNext();) {
			EObject linkObject = (EObject) links.next();
			if (false == linkObject instanceof SequenceFlow) {
				continue;
			}
			SequenceFlow link = (SequenceFlow) linkObject;
			if (SequenceFlowEditPart.VISUAL_ID != Bpmn_1_1VisualIDRegistry
					.getLinkWithClassVisualID(link)) {
				continue;
			}
			GraphicalElement dst = link.getTargetRef();
			GraphicalElement src = link.getSourceRef();
			if (src != source) {
				continue;
			}
			result.add(new Bpmn_1_1LinkDescriptor(src, dst, link,
					Bpmn_1_1ElementTypes.SequenceFlow_4001,
					SequenceFlowEditPart.VISUAL_ID));
		}
		return result;
	}

	/**
	 * @generated
	 */
	private static Collection<Bpmn_1_1LinkDescriptor> getOutgoingTypeModelFacetLinks_Association_4002(
			GraphicalElement source) {
		Process container = null;
		// Find container element for the link.
		// Climb up by containment hierarchy starting from the source
		// and return the first element that is instance of the container class.
		for (EObject element = source; element != null && container == null; element = element
				.eContainer()) {
			if (element instanceof Process) {
				container = (Process) element;
			}
		}
		if (container == null) {
			return Collections.emptyList();
		}
		LinkedList<Bpmn_1_1LinkDescriptor> result = new LinkedList<Bpmn_1_1LinkDescriptor>();
		for (Iterator<?> links = container.getGraphicalElements().iterator(); links
				.hasNext();) {
			EObject linkObject = (EObject) links.next();
			if (false == linkObject instanceof Association) {
				continue;
			}
			Association link = (Association) linkObject;
			if (AssociationEditPart.VISUAL_ID != Bpmn_1_1VisualIDRegistry
					.getLinkWithClassVisualID(link)) {
				continue;
			}
			GraphicalElement dst = link.getTargetRef();
			GraphicalElement src = link.getSourceRef();
			if (src != source) {
				continue;
			}
			result.add(new Bpmn_1_1LinkDescriptor(src, dst, link,
					Bpmn_1_1ElementTypes.Association_4002,
					AssociationEditPart.VISUAL_ID));
		}
		return result;
	}

}
